package com.pagepub.core.utils;

import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;

/**
 * 信息提示类

 * @author ggd
 * 
 */
@SuppressWarnings("unused")
public class ActionMessage
{
	private List<String> messageList = new ArrayList<String>();

	private String resourceName;

	/**
	 * 一般的构造

	 * 
	 * @param message
	 *            显示的提示信息

	 * @param args
	 *            message消息需要的参数值

	 */
	public ActionMessage(String message, Object... args)
	{
		addMessage(MessageFormat.format(message, args));
	}
	/**
	 * 添加带有参数的消息(不从资源文件取)
	 * @param message
	 * @param args
	 */
	public void addMessage(String message, Object... args)
	{
		if(args!=null&&args.length>0)
		{
			this.messageList.add(MessageFormat.format(message, args));
		}
		else
		{
			this.messageList.add(message);
		}
	}

	/**
	 * 带有参数的构造

	 * 
	 * @param messageKey
	 *            资源文件中的key
	 * @param resourceName
	 *            资源文件名称
	 * @param args
	 *            messageKey对应消息需要的参数值

	 */
	public ActionMessage(String messageKey, String resourceName, Object... args)
	{
		addMessage(messageKey, resourceName, args);
	}
	/**
	 * 添加带有参数的消息(messageKey是资源文件对应的一个key)
	 * @param messageKey
	 * @param resourceName
	 * @param args
	 */
	public void addMessage(String messageKey, String resourceName, Object... args)
	{
		ResourceBundle rb = ResourceBundle.getBundle(resourceName);
		if(args!=null&&args.length>0)
		{
			this.messageList.add(MessageFormat.format(rb.getString(messageKey), args));
		}
		else
		{
			this.messageList.add(rb.getString(messageKey));
		}
	}

	/**
	 * 返回所有的错误信息
	 * 
	 * @return
	 */
	public String getMessages()
	{
		String retu = "";
		for (String l : messageList)
		{
			retu += l + "\n";
		}
		return retu;
	}
}
